﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using ElectronicCommerce.Framework.Payment.Contract.DataContract.Common;

namespace ElectronicCommerce.Framework.Payment.Contract.DataContract
{

    /// <summary>
    /// 收费回调验证结果
    /// </summary>
    [Serializable]
    [DataContract]
    public class ChargeCallbackResult : PaymentResult
    {
        public ChargeCallbackResult()
        {
            this.SOID = "";
            this.OutSOID = "";
            this.ResponseMode = ResponseMode.UrlRedirect;
            this.ResultType = ChargeCallbackResultType.Success;
            this.ResultMessage = "";
            this.ShowUrl = "";
            this.Amount = "0";
        }

        /// <summary>
        /// 订单号
        /// </summary>
        [DataMember]
        public string SOID { get; set; }

        /// <summary>
        /// 支付网关流水号
        /// </summary>
        [DataMember]
        public string OutSOID { get; set; }

        /// <summary>
        /// 响应方式
        /// </summary>
        [DataMember]
        public ResponseMode ResponseMode { get; set; }

        /// <summary>
        /// 回调结果类型
        /// </summary>
        [DataMember]
        public ChargeCallbackResultType ResultType { get; set; }

        /// <summary>
        /// 提示信息
        /// </summary>
        [DataMember]
        public string ResultMessage { get; set; }

        /// <summary>
        /// 在ReturnUrl/NotifyUrl对应页面处理之后应展示的页面
        /// </summary>
        [DataMember]
        public string ShowUrl { get; set; }

        [DataMember]
        public string Amount
        {
            get;
            set;
        }
    }
}
